const { body, param } = require('express-validator')

// ID参数验证规则
const idSchema = [
    param('id')
        .notEmpty()
        .withMessage('供应商ID不能为空')
        .isInt()
        .withMessage('供应商ID必须是整数')
        .toInt()
]

// 添加供应商验证规则
const addSupplierSchema = [
    body('supplier_name')
        .notEmpty()
        .withMessage('供应商名称不能为空')
        .isLength({ min: 1, max: 100 })
        .withMessage('供应商名称长度必须在1-100个字符之间'),
    body('contact_person')
        .notEmpty()
        .withMessage('联系人不能为空')
        .isLength({ min: 1, max: 100 })
        .withMessage('联系人长度必须在1-100个字符之间'),
    body('phone')
        .notEmpty()
        .withMessage('联系电话不能为空')
        .isLength({ min: 1, max: 20 })
        .withMessage('联系电话长度必须在1-20个字符之间'),
    body('address')
        .notEmpty()
        .withMessage('供应商地址不能为空')
]

// 更新供应商验证规则
const updateSupplierSchema = [
    param('id')
        .notEmpty()
        .withMessage('供应商ID不能为空')
        .isInt()
        .withMessage('供应商ID必须是整数')
        .toInt(),
    body('supplier_name')
        .notEmpty()
        .withMessage('供应商名称不能为空')
        .isLength({ min: 1, max: 100 })
        .withMessage('供应商名称长度必须在1-100个字符之间'),
    body('contact_person')
        .notEmpty()
        .withMessage('联系人不能为空')
        .isLength({ min: 1, max: 100 })
        .withMessage('联系人长度必须在1-100个字符之间'),
    body('phone')
        .notEmpty()
        .withMessage('联系电话不能为空')
        .isLength({ min: 1, max: 20 })
        .withMessage('联系电话长度必须在1-20个字符之间'),
    body('address')
        .notEmpty()
        .withMessage('供应商地址不能为空')
]

module.exports = {
    idSchema,
    addSupplierSchema,
    updateSupplierSchema
}